import os
import win32api
# 1. 编写一个函数
# 传入路径，打印这个路径下的文件及文件夹
# printPath("e:\\aaa")

# 打印输出
# e:\\aaa
#     |-bbb
#     |-ccc
#     |-1.txt
#     |-2.txt
# import os
# def print_path_derec():
#     path = input('请输入路径：')
#     for filename in os.listdir(path):                      # 遍历该路径下的所有文件
#         print(filename, end='')                            # 每打印一次文件（或者一个文件夹）时，就判断一次类型
#         if os.path.isfile(path+'\\'+filename):
#             print('-文件')
#         if os.path.isdir(path+'\\'+filename):
#             print('-文件夹')
# print_path_derec()


# 2. 给之前的综合练习添加保存功能

# 3. 使用递归改造练习1
#    如果是文件夹 则打印出子内容
# e:\\aaa
#     |-bbb
#       |--ddd
#             |--4.txt
#         |--3.txt
#     |-ccc
#     |-1.txt
#     |-2.txt

def dir(path,level):
    #只有第一层显示完整路径
    if level == 0:
        print(path)
    for filename in os.listdir(path):
        filepath = path + '\\'+filename      # 拼接文件的完整路径
        attr = win32api.GetFileAttributes(filepath)   # 得到文件的属性
        if (attr & 0b10 == 0) and (attr & 0b100 == 0):   # 通过一个判断语句筛除系统文件和隐藏文件
            for i in range(level):   # 根据level的数量来控制缩进位置
                print(" ",end='')
            print(' |-' + filename)
            if os.path.isdir(filepath):
                dir(filepath,level+1)
dir('D:\\123',0)

# *4. 编写一个目录复制函数
# copy(srcPath,destPath)
# 将d:\\aaa复制一份
# copy("d:\\aaa","d:\\zzz")


